package com.yc.Matrix;

import com.yc.Matrix.group.ParallelGroupMultipiler;


public class Test4_ParallelGroupMain {
    public static void main(String[] args) {
        //生成两个矩阵
        double matrix1[][] = MatrixGenerator.generator(2000,2000);
        double matrix2[][] = MatrixGenerator.generator(2000,2000);

        //结果矩阵
        double result[][]=new double[matrix1.length][matrix2[0].length];

        long start,end;
        start=System.currentTimeMillis();

        //SerialMultiplier.multiply(matrix1,matrix2,result); //单线程计算矩阵乘法
        //ParalleIndividualMultiplier.multiply(matrix1,matrix2,result); //结果矩阵中每个元素一个线程的版本: 细粒度多线程版
        //ParallelRowMultipiler.multiply(matrix1,matrix2,result);
        ParallelGroupMultipiler.multiply(matrix1,matrix2,result);



        end=System.currentTimeMillis();
        System.out.println("细粒度版---按CPU核数矩阵行生成任务的版本--计算矩阵乘法的时间:"+(end-start)); // 串行  89890
        //第一并行版  ....分钟
        //第二并行版  12656
        //第三版       9278



    }
}
